巨坑:数据库查询有结果,而对应的实体类个别为null |
您所在的位置:网站首页 › mysql 查询记录为类的成员 › 巨坑:数据库查询有结果,而对应的实体类个别为null |
一个小小的疏忽,浪费了好几个小时时间,差点崩溃!!! 在完善项目数据库的过程中,由于命名的不规范,所有对某些数据库的表字段进行了修改。然后在重新整理测试代码的过程中,发现查询出现有几个字段一直没有映射成功,依然为null。然后开始令人崩溃疯狂找bug过程,各种方法都试了个遍....... 首先数据库是存在数据,然后一直怀疑xml文件出现问题。 select * from sys_user where code = #{code} update sys_user set status=1,code=null where user_id=#{UserID}对应的控制器代码: @RequestMapping(value = "/selectCode") public String checkCode(String code){ User user = userService.checkCode(code); System.out.println(user+"未成功激活"); //如果用户不等于null,把用户状态修改status=1 if (user !=null){ user.setStatus(1); //把code验证码清空,已经不需要了 user.setCode(""); System.out.println(user+"激活成功"); userService.updateUserStatus(user); } return "login"; }根据上面控制器的代码,控制台输出的结果如下:user对象有部分数据输入,但是ID为0,登录的账号为null。 兜兜转转找来找去,也没发现哪里不对劲,但是数据库里面就能查询到数据,这就很奇怪了! 使用debug执行 ,发现其中部分字段始终映射不上,真的崩溃 上网百度看见说什么mybatis的配置文件,需要开启驼峰命名才会映射到实体类中的字段,尝试过后发现也不是这个原因 后来我终于知道了原因,原来是返回值类型resultType和resultMap的区别!!!对应的实体类属性和表中字段不一致,需要利用resultMap来添加映射,把数据库表属性和实体类字段进行绑定
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |